#1
a1 = ("l",)
a2 = ("jy",)
a3 = a1+a2
print(a3)

#2
b1 = [1,2,3]
b2 = [4,5,6]
print(b1+b2)

#3
sum1 = {2, 3, 4, 5, 7}
i = int(input("请输入一个数"))
if i in sum1:
    print(f"{i}元素在集合中")
else:
    print(f"{i}元素不在集合中")
i = int(input("请输入一个数"))
if i in sum1:
    print(f"{i}在集合中")
else:
    print(f"{i}不在集合中")

#4
user = input("请输入您的账号").strip()
pwd = input("请输入您的密码").strip()

if user == 'admin' and pwd =='123456':
    print("登录成功")
else:
    print("账号密码错误，登录失败！")

#5
user = input("请输入您的账号").strip()
pwd = input("请输入您的密码").strip()
if user == 'seven' or 'alex'and pwd == '123' :
    print("登录成功")
else:
    print("登陆失败")

#6
count = 0
for num in range(0, 101):
    if num % 3 == 0:
        count += 1
print(f"100以内3的整数倍数字共有{count}个")

#7
count = input("请输入一串字母")
i = ('c')
if i in count:
    print(f"{count}中有c")
else:
    print(f"{count}中没有c")

#8
# 1. 初始化列表，用于存储所有用户的字典数据
all_users = []

# 2. 循环接收用户输入，直到输入"q"结束
while True:
    # 提示用户输入，同时说明结束方式
    print("\n请输入用户信息（输入 'q' 结束输入）：")

    # 接收姓名输入，判断是否结束
    name = input("姓名：").strip()  # strip() 去除输入两端的空格
    if name.lower() == 'q':  # 不区分大小写（如输入Q也能结束）
        break  # 结束循环

    # 接收其他信息（电话、住址、年龄）
    phone = input("电话：").strip()
    address = input("住址：").strip()
    age = input("年龄：").strip()

    # 3. 用字典存储当前用户的所有信息
    user_info = {
        "姓名": name,
        "电话": phone,
        "住址": address,
        "年龄": age
    }

    # 4. 将当前用户字典添加到总列表中
    all_users.append(user_info)

# 5. 结束输入后，处理用户查询逻辑
if not all_users:  # 判断是否有用户数据（避免空列表报错）
    print("\n未输入任何用户信息，程序结束。")
else:
    # 打印所有用户名，供用户选择
    print("\n已存储的用户名如下：")
    for index, user in enumerate(all_users, start=1):  # 带序号展示，更清晰
        print(f"{index}. {user['姓名']}")

    # 循环获取合法的选择（避免用户输入无效值）
    while True:
        try:
            # 接收用户选择（序号）
            choice = int(input("\n请选择一个用户名的序号："))
            # 判断序号是否在有效范围内
            if 1 <= choice <= len(all_users):
                # 根据选择获取对应的用户信息
                selected_user = all_users[choice - 1]  # 列表索引从0开始，需减1
                break  # 选择合法，退出循环
            else:
                print(f"输入无效！请选择 1-{len(all_users)} 之间的序号。")
        except ValueError:
            # 捕获用户输入非数字的情况
            print("输入无效！请输入数字序号。")

    # 6. 按指定格式打印选中用户的全部信息
    print(f"\n用户 {selected_user['姓名']}，电话是{selected_user['电话']}，地址是{selected_user['住址']}，年龄是{selected_user['年龄']}")

#9
stu_dict = {}
while True:
    print("欢迎来到图书管理系统！")
    print("功能菜单如下：\n")
    print("①添加图书")
    print("②删除图书")
    print("③修改图书")
    print("④显示所以图书")
    print("⑤退出操作")
    r = input("请输入您要选择的序号：")
    # 添加学生信息
    if r == '1':
        name = input("请输入您要添加的书名：")
        if name not in stu_dict:
            print(f"添加成功！")
            print(f"书名为：{name}")
        else:
            print(f"您要添加的：{name}已经存在于图书管理系统中，添加失败！")
        pass
    elif r == '2':
        name = input("请先输入您要删除的书名：")
        if name in stu_dict:
            stu_dict.pop(name)
            print(f"{name}书名删除成功！")
        else:
            print(f"您要删除的：{name}不存在于图书馆里系统中，删除失败！")
        pass
    elif r == '3':
        old_name = input("请输入您要修改的书名：")
        if old_name in stu_dict:
            new_name = input("请输入您修改后的书名：")
            stu_dict.pop(old_name)
            # 再去添加新的学生信息
            stu_dict[new_name] = {"书名":name}
            print(f"原书名为：{old_name}，信息修改成功！修改后的书名是：{new_name}，")
        else:
            print(f"要修改的：{old_name}不存在，修改失败！")
        pass
    elif r == '4':
        for index,info in enumerate(stu_dict):
            print(f"第{index+1}个书名为：{info}")
    elif r == '5':
        print("欢迎您下次光临图书管理系统！")
        print("再见！")
        break

#10
import random
secret_number = random.randint(0, 9)
print("欢迎来到猜数字游戏！我已经想好了一个0-9之间的整数。")

while True:
    try:
        guess = int(input("请输入你猜的数字："))

        if guess < 0 or guess > 9:
            print("请输入0-9之间的整数！")
            continue

        if guess > secret_number:
            print("太大")
        elif guess < secret_number:
            print("太小")
        else:
            print("恭喜！你猜中了！")
            break
    except ValueError:
        print("请输入有效的整数！")

#11
# 获取用户输入的4个整数组成list1
list1 = []
print("请输入4个整数（按回车确认每个数字）：")
for i in range(4):
    while True:
        try:
            num = int(input(f"第{i+1}个数字："))
            list1.append(num)
            break
        except ValueError:
            print("请输入有效的整数！")

# 获取用户输入的3个整数组成list2
list2 = []
print("\n请输入3个整数（按回车确认每个数字）：")
for i in range(3):
    while True:
        try:
            num = int(input(f"第{i+1}个数字："))
            list2.append(num)
            break
        except ValueError:
            print("请输入有效的整数！")

# 合并列表
list1.extend(list2)

# 在末尾添加90和100
list1.append(90)
list1.append(100)

# 降序排列
list1.sort(reverse=True)

# 输出结果
print("\n最终的列表为：", list1)

#12
def length_of_last_word(s):
    # 去除字符串首尾的空格
    s = s.strip()

    # 如果字符串为空，返回0
    if not s:
        return 0

    # 从字符串末尾开始向前查找空格
    length = 0
    for i in range(len(s) - 1, -1, -1):
        if s[i] == ' ':
            break
        length += 1

    return length


# 获取用户输入
s = input("请输入一个字符串：")

# 计算并输出结果
print(f"最后一个单词的长度是：{length_of_last_word(s)}")

#13
s = input("请输入一个字符串：")
reversed_s1 = s[::-1]
reversed_s2 = ''.join(reversed(s))
print(f"反转后的字符串是：{reversed_s1}")

#14
while True:
    try:
        num = int(input("请输入一个整数："))
        if num % 2 == 0:
            print(f"{num}是偶数")
        else:
            print(f"{num}是奇数")
        break
    except ValueError:
        print("请输入有效的整数！")

#15
total = 0
for num in range(1, 101):
    if num % 7 == 0 and num % 5 != 0:
        total += num
        print(num, end=" ")
print(f"\n1到100之间所有能被7整除但不能被5整除的数的和是：{total}")

#16
nums = []
print("请输入三个数：")
for i in range(3):
    while True:
        try:
            num = float(input(f"第{i+1}个数："))
            nums.append(num)
            break
        except ValueError:
            print("请输入有效的数字！")

min_num = nums[0]
if nums[1] < min_num:
    min_num = nums[1]
if nums[2] < min_num:
    min_num = nums[2]

print(f"三个数 {nums[0]}, {nums[1]}, {nums[2]} 中的最小值是：{min_num}")

#17
def two_sum(nums, target):
    # 创建一个字典存储数字和其索引
    num_map = {}

    # 遍历数组
    for i, num in enumerate(nums):
        # 计算需要找到的互补数
        complement = target - num

        # 如果互补数在字典中，返回结果
        if complement in num_map:
            return [num_map[complement], i]

        # 否则将当前数字和索引存入字典
        num_map[num] = i
    return []
nums = [2, 7, 11, 15]
target = 9
print(f"数组 {nums} 中和为 {target} 的两个数的下标是：{two_sum(nums, target)}")

#18
listinfo = [133, 88, 24, 33, 232, 44, 11, 44]
result = [num for num in listinfo if num < 100 and num % 2 == 0]
print(f"原列表：{listinfo}")
print(f"小于100且为偶数的数：{result}")

#19
while True:
    try:
        num = int(input("请输入一个整数："))

        if num == 0:
            print("0是1位数")
            break

        abs_num = abs(num)
        count = 0
        while abs_num > 0:
            abs_num = abs_num // 10
            count += 1

        print(f"{num}是{count}位数")
        break
    except ValueError:
        print("请输入有效的整数！")

#20
dict = {"name":"韩梅梅",'age':33}
dict['name'] = '韩涛'
dict.pop("age")
dict['sex'] = '男'
print(dict)

#21
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']

print("原始列表:", my_list)

second_value = my_list[1]
print("\n列表中的第2个值是:", second_value)

if len(my_list) >= 3:
    del my_list[2]
    print("删除第3个值后的列表:", my_list)
else:
    print("列表长度不足3，无法删除第3个值")

